/** ==================================================================================== **/
/** 		   Definizione dei service per mostrare e nascondere il Loadnig ...			 **/
/** ==================================================================================== **/

/**
 * Servizi di gestione della direttiva (<loading-application ... ></loading-application>) di loading.
 * 
 * Per utilizzare i metodi pubblici del service è necessario iniettare nei propri service e/o controller la classe "LoadingAppService".
 */
BootApplication.service('LoadingAppService', function() {
	
	/**
	 * Constructor
	 */
	this.loadingVisibility = false;
	this.loadingMessage = "";
	
    /**
     * Mostra il loading
     * 
     * @param message, testo che deve apparire vicino al loading (opzionale)
     */
    this.showLoader = function (message){
	   this.loadingVisibility = true;
	   this.loadingMessage = message;
    }
    /**
     * Rimuove il loading
     */
    this.hideLoader = function (){
	   this.loadingVisibility = false;
	   this.loadingMessage = "";
    }
    
    this.setLoadingVisibility = function (visibility){	
	   this.loadingVisibility = visibility;
    }
    this.isLoadingVisibility = function (){
	   return this.loadingVisibility;
    }
    this.setLoadingMessage = function (message){
	   this.loadingMessage = message;
    }
    this.getLoadingMessage = function (){
	   return this.loadingMessage;
    }
});
